package com.bookshop.scheduler;

import com.bookshop.configuration.BloomFilterManager;
import lombok.extern.slf4j.Slf4j;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * @author g2l
 * @create 2022-09-16 22:29
 */
@Slf4j
@Component
public class MyJob implements Job {

    @Resource
    private BloomFilterManager bloomFilterManager;

    /**
     * 执行任务的方法，Quartz框架会在触发器触发时调用此方法。
     *
     * @param jobExecutionContext 包含任务执行的上下文信息，提供了访问任务数据等功能
     * @throws JobExecutionException 如果任务执行过程中发生异常，可以抛出此异常
     */
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        // 在项目启动时并不会立马执行一次定时任务，所以需要在BloomFilterManager的构造器中初始化布隆构造器
        log.info("quartz重置布隆过滤器");
        bloomFilterManager.initBloomFilter();
    }

}
